// Site.h: interface for the Site class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SITE_H__9A909599_BDC1_4CA8_8E76_F7B7A208EF29__INCLUDED_)
#define AFX_SITE_H__9A909599_BDC1_4CA8_8E76_F7B7A208EF29__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Tree.h"

using namespace PDMS::PDMSFrame;

namespace PDMS
{
	namespace PDMSDomain
	{
		class DllExport Site : public PDMSFrame::Tree
		{
			UE_PDMSCLASS_DEFINE( Site );
			
		public:
			const StdString& GetFunction() const{
				AssertReadEnable();
				return m_strFunction;
			}

			const StdString& GetPurpose() const{
				AssertReadEnable();
				return m_strPurpose;
			}
			
			INT GetNumber() const{
				AssertReadEnable();
				return m_iNumber;
			}

			INT GetArea() const{
				AssertReadEnable();
				return m_iArea;
			}

			const StdString& GetModule() const{
				AssertReadEnable();
				return m_strModule;
			}

			const StdString& GetRlstored() const{
				AssertReadEnable();
				return m_strRlstored;
			}

		public:
			BOOL IsLegalParent( Tree* pParent );
			Persistable* Clone();
			Site();
			virtual ~Site();

			BOOL SetFunction( const StdString &strFunction ){
				AssertWriteEnable();
				m_strFunction = strFunction;
				return TRUE;
			}

			BOOL SetPurpose( const StdString &strPurpose ){
				AssertWriteEnable();
				m_strPurpose = strPurpose;
				return TRUE;
			}

			BOOL SetNumber( INT iNumber ){
				AssertWriteEnable();
				m_iNumber = iNumber;
				return TRUE;
			}

			BOOL SetArea( INT iArea ){
				AssertWriteEnable();
				m_iArea = iArea;
				return TRUE;
			}

			BOOL SetModule( const StdString &strModule ){
				AssertWriteEnable();
				m_strModule = strModule;
				return TRUE;
			}

			BOOL SetRlstored( const StdString &strRlstored ){
				AssertWriteEnable();
				m_strRlstored = strRlstored;
				return TRUE;
			}

		private:
			// ??? m_?Position;
			// ??? m_?Orient;
			StdString m_strFunction;
			StdString m_strPurpose;
			INT       m_iNumber;
			INT       m_iArea;
			StdString m_strModule;
			StdString m_strRlstored;
		};
	}
}

#endif // !defined(AFX_SITE_H__9A909599_BDC1_4CA8_8E76_F7B7A208EF29__INCLUDED_)
